A Meta-modeling Semantics of Multiple Inheritance
نویسندگان
چکیده
Inheritance affords to object-oriented programming its great powers of reusability. When inheritance is single, its specifications are simple and everybody roughly agree with them. On the contrary, multiple inheritance yields ambiguities that have provoked long-lasting debates and there are no two languages which agree on its specifications. In this paper, we present a semantics of multiple inheritance based on meta-modeling. A metamodel is proposed, which distinguishes the ‘identity’ of properties from their ‘values’ or ‘implementations’. It yields a clear separation between syntactic and semantic conflicts. The former can be solved in any language at the expense of a common syntactic construct, namely full name qualification. On the contrary, semantic conflicts require a programmer’s decision and the programming language must provide some help to the programmer. The paper surveys the approach based on linearizations, which has been studied in-depth, and proposes some extensions. As it turns out that only static typing takes full advantage of the metamodel, the interaction of multiple inheritance and static typing is also considered, especially in the context of virtual types. The solutions proposed by the various languages with multiple inheritance are confronted with the metamodel and implementation issues are finally examined. All the paper long, the difficulties entailed under the open world assumption are stressed.
منابع مشابه
Metamodeling semantics of multiple inheritance
Inheritance provides object-oriented programming with much of its great reusability power. When inheritance is single, its specifications are simple and everybody roughly agrees on them. On the contrary, multiple inheritance yields ambiguities that have prompted long-standing debates and no two languages agree on its specifications. In this paper, we present a semantics of multiple inheritance ...
متن کاملWell-Founded Optimism: Inheritance in Frame-Based Knowledge Bases
F-logic is a popular formalism for knowledge-intensive applications and, especially, for ontology management in Semantic Web. However, the original F-logic’s semantics for inheritance suffers from a number of anomalies when inheritance and deduction closely interact. This work rectifies this problem and develops a natural model-theoretic semantics for inheritance in frame-based knowledge bases,...
متن کاملOOLP: A Translation Approach to Object-Oriented Logic Programming
OOLP integrates the superior modeling capabilities of object-oriented paradigm in the declarative framework of logic programming. Method in-vocation in OOLP is given a precise model theoretic semantics which is consistent with that of logic programming. OOLP is extended to a practical object-oriented database language OOLP+ by adding some extra-logical features. OOLP+ allows object identity, mu...
متن کاملDynamic overloading with copy semantics in object-oriented languages: a formal account
Mainstream object-oriented languages often fail to provide complete powerful features altogether, such as, multiple inheritance, dynamic overloading and copy semantics of inheritance. In this paper we present a core object-oriented imperative language that integrates all these features in a formal framework. We define a static type system and a translation of the language into the meta-language...
متن کاملMeta-modeling and modularity : Comparison between MOF, CDIF & sNets formalisms
Our aim in this article is to show how modularity is defined and used in some current modeling languages based on meta-meta-models. These languages are the MOF (Meta Object Facility) [MOF1997] submission which has been submitted to the OMG (Object Management Group) and CDIF [Ernst1997] (Case Data Interchange Format) as defined by the CDIF technical committee and standardized by the Electronic I...
متن کامل